import { getValue } from './util'
import Dep from './dep'
export default class Watcher {
  constructor(vm, key, cb) {
    this.vm = vm
    this.key = key
    this.cb = cb
    Dep.target = this
    this.oldValue = getValue(vm, key)
    Dep.target = null
  }
  update() {
    const newValue = this.vm[this.key]
    if (this.oldValue !== newValue) {
      this.cb(newValue)
    }
  }
}